/*
    Kelompok    2
    Kelas       2
    Anggota :
    1. Yudha Wastu Prawira      / 13509002
    2. Robertus Theodore        / 13509008
    3. Rendy Bambang Junior     / 13509036
    4. Hartono Sulaiman Wijaya  / 13509046
    5. Daniel Prihartoni        / 13509088
    6. Raydhitya Yosep          / 13509092

*/

#ifndef _FARMER_H
#define _FARMER_H

#include "Resource.h"
#include "Farm.h"

class Farmer{
        public :
            //ctor, dtor
            Farmer ();
            ~Farmer();

            //getter
            Point getCurPos();
            Direction getCurDir();
			Point getFrontPos();

			//berganti arah (UP/LEFT/DOWN/RIGHT)
            void changeDir(Direction);
			//menggerakkan farmer 1 langkah ke depan sesuai arahnya.
            bool move(Farm&); //bila terrain isEmpty, ganti curPos dan return true, else return false
			//mengairi terrain di depannya
            bool water(Farm&); //bila terrain isWaterable, return true dan setWatered, else return false
			//menyabit tanaman di depannya
            bool slash(Farm&); //bila terrain isSlashable, return true dan setSlashed, else return false
			//mendapatkan harga dari barang tertentu
			int getPrice(ItemType);
			//mengembalikan true bila player menghadap luar farm
			bool isFaceOutside();

        protected :
			//posisi curent farmer
            Point curPos;
			//arah curent farmer
            Direction curDir; //Person's direction, LEFT/RIGHT/UP/DOWN
};

#endif
